package dao

import (
	"github.com/liangchao/blogo/src/common/models"
	"github.com/liangchao/blogo/src/common/utils"
	"log"
)

type TagDao struct {
	tags []models.Tag
}

// GetTagNamesByBlogId 通过 blogId 查询 TagNames
func (d *TagDao) GetTagNamesByBlogId(blogId int) (tags []models.Tag, err error) {
	r := &models.BlogTagRelation{BlogId: blogId}
	tagIds, err := r.GetTagIdsByBlogId()
	if err != nil {
		return
	}
	for _, tagId := range tagIds {
		t := models.Tag{TagId: tagId.TagId}
		err = t.GetTagNameById()
		if err!= nil {
			return
		}

		d.tags = append(d.tags, t)
	}
	tags = d.tags
	return
}

// GetAllTagName 查询所有 Tag
func (d *TagDao) GetAllTagName() (tags []models.Tag, err error) {
	tags, err = new(models.Tag).GetAllTags()
	if err != nil {
		return
	}
	d.tags = tags
	tags, err = d.ToMapList()
	return
}

func (d *TagDao) ToMap(t *models.Tag) (err error) {
	t.CreateTimeStr = utils.FormatTime(t.CreateTime)
	return
}

func (d *TagDao) ToMapList() (tags []models.Tag, err error) {
	for i := 0; i < len(d.tags); i++ {
		err = d.ToMap(&d.tags[i])
		if err != nil {
			return
		}
	}

	tags = d.tags
	log.Println(tags)
	return
}